/**
 *  =============== generator函数 =================
 *  1. generator 函数可以将函数切成若干个部分. 是 async await 的原理基础
 */


// generator 返回的结果是 iterator 迭代器.(能被不停的调用next来进行迭代的)
function* read() {
  const a = yield 1; // yield 是产出的意思
  console.log('a ->',a);
  const b = yield  2;
  console.log('b->',b);
  const c = yield 3
  console.log('c->',c);
}

let it = read()
// 调用 next方法, 就是给上一次yield 的返回值赋值. 调用一次next,执行过去一次yield赋值
console.log(it.next()); // 第一次传递参数是无意义的.
console.log(it.next('aaa'));// next 方法给上一次yield 的返回值赋值.



